/**
 * 
 */
package at.ac.tuwien.swa075.telco.bc.service;

import at.ac.tuwien.swa075.telco.bc.BCException;
import at.ac.tuwien.swa075.telco.bc.service.sdo.AccountSDO;

/**
 * @author vovmj01
 *
 */
public interface IAccountService {
	/**
	 * Creates an account for a customer and his device.
	 * @param account
	 * @return The account number
	 * @throws BCException
	 */
	public String createAccount(AccountSDO account) throws BCException;
	
	/**
	 * Deletes an existing account.
	 * @param accountNumber
	 * @throws BCException
	 */
	public void deleteAccount(String accountNumber) throws BCException;
	
	/**
	 * Updates an existing account
	 * @param account
	 * @throws BCException
	 */
	public void updateAccount(AccountSDO account) throws BCException;
	
	/**
	 * Finds an account with the equipment identity.
	 * @param imei The equipment id that idetnifies the account.
	 * @return The accoutn for the given device.
	 * @throws BCException An error occured during the lookup.
	 */
	public AccountSDO findAccount(String imei) throws BCException;
}
